$(function() {
	var url = getRequestUrl();
	tableRequestData(url);

	$(".g-search").click(function() {
		$("input[name='pagination']").val("1");
		var url = getRequestUrl();
		tableRequestData(url);
	});
	$(".g-reset").click(function() {
		$("#search-username").textbox("clear");
		$("#search-model").combobox("setValues", "-1");
	});
});

var columns = [ [ {
	field : 'id',
	title : 'ID',
	width : fixWidth(0.01)
}, {
	field : 'username',
	title : '登录用户名',
	width : fixWidth(0.04)
}, {
	field : 'hostNumber',
	title : '站点数量',
	align : 'center',
	width : fixWidth(0.01)
}, {
	field : 'status',
	title : '用户状态',
	align : 'center',
	width : fixWidth(0.02),
	formatter : function(value, row) {
		if (isNaN(parseInt(row.id))) {
			return '';
		}
		if (parseInt(value) === 0) {
			return '<span>未审核</span>';
		} else if (parseInt(value) === 1) {
			return '<span style="color: green;">正常</span>';
		} else if (parseInt(value) === 2) {
			return '<span style="color: orange;">冻结</span>';
		} else if (parseInt(value) === 3) {
			return '<span style="color: purple;">异常</span>';
		} else if (parseInt(value) === 4) {
			return '<span style="color: red;">删除</span>';
		} else {
			return '<span style="color: blue;">未知状态</span>';
		}
	}
}, {
	field : 'createAt',
	title : '创建用户时间',
	align : 'center',
	width : fixWidth(0.03),
	formatter : function(value) {
		if (!value) {
			return ''
		}
		return moment(value).format('YYYY-MM-DD HH:mm:ss');
	}
}, {
	field : 'operation',
	title : '操作',
	align : 'center',
	width : fixWidth(0.02),
	formatter : function(value, row) {
		if (isNaN(parseInt(row.id))) {
			return '';
		}
		if (parseInt(row.status) === 4) {
			return '';
		}
		var html = '<a href="javascript:void(0);" onclick="editorStatus(';
		html += row.id;
		html += ')" style="position: static; cursor: pointer;">状态</a>';
		html += '&nbsp;&nbsp; &nbsp;&nbsp;<a href="javascript:void(0);"  onclick="editorUsername(';
		html += row.id;
		html += ')" style="position: static; cursor: pointer;">登录用户名</a>';
		return html;
	}
} ] ];

function tableRequestData(url) {
	$("#loading").mLoading("show");
	request.get(url, null, function(response, data) {
		if (data && data.total > 0) {
			// console.log(makeData(data.list))
			$('#customermanage-infos').datagrid({
				fitColumns : true,
				scrollbarSize : 0,
				singleSelect : true,
				data : makeData(data.list),
				toolbar : '#model-action-toolbar',
				columns : columns
			});
			$("#totalMessage").html("共 " + data.total + " 条数据");
			if (data.total > 12) {
				// 显示分页
				$("#customermanage-pp").show();
				$("#customermanage-pp").pagination({
					layout : [ 'first', 'links', 'last' ],
					links : 9,
					total : data.total,
					pageSize : 12,
					pageNumber : $("input[name='pagination']").val(),
					onSelectPage : function(pageNumber) {
						$("input[name='pagination']").val(pageNumber);
						reload();
					}
				});
			} else {
				// 隐藏分页
				$("#customermanage-pp").hide();
			}
			// console.log(data.total);
		} else {
			$('#customermanage-infos').datagrid({
				fitColumns : true,
				scrollbarSize : 0,
				singleSelect : true,
				data : [ {
					id : '无记录'
				} ],
				toolbar : '#model-action-toolbar',
				columns : columns
			});

			$("#totalMessage").html("共 0 条数据");
			// console.log(data);
		}
		// console.log(response)
	}, null, function() {
		$("#loading").mLoading("hide");
	})
}

function makeData(dataList) {
	var result = [];
	for (var i = 0; i < dataList.length; i++) {
		var item = dataList[i];
		result.push({
			id : item.customerUser.id,
			name : item.customerUser.name,
			username : item.customerUser.username,
			hostNumber : item.hostList.length,
			status : item.customerUser.status,
			createAt : item.customerUser.createAt
		});
	}
	return result;
}

function getRequestUrl() {
	var obj = {
		username : $("#search-username").textbox('getText'),
		numberKey : '',
		status : $("#search-model").val() ? $("#search-model").val() : '-1',
		pageNumber : $("input[name='pagination']").val()
	};
	return '/backend/customermanage/infos/get?' + $.param(obj);
}

function reload() {
	var url = getRequestUrl();
	tableRequestData(url);
}

// 按钮动作
function editorStatus(id) {
	id = parseInt(id);
	if (isNaN(id) || id < 1) {
		return;
	}
	// 首先弹窗
	layer.ready(function() {
		layer.open({
			title : '修改用户的当前状态',
			skin : 'layui-layer-rim', // 加上边框
			area : [ '500px', '360px' ], // 宽高
			btn : [ '确定修改', '取消' ],
			content : $("#editor-status-form").html(),
			success : function(layero, index) {
				$(".layui-layer-content").mLoading("show");
				request.post('/backend/customermanage/infos/get-one-by-id', {
					id : id
				}, function(response, data) {
					if (data && data.customerUser && data.customerUser.id) {
						$(".layui-layer-content input[name='username']").val(data.customerUser.username);
						$(".layui-layer-content select[name='status']").val(data.customerUser.status);
					}
				}, null, function() {
					$(".layui-layer-content").mLoading("hide");
				})
			},
			btn1 : function(index) {
				if ($(".layui-layer-content .mloading").hasClass("active")) {
					return;
				}
				var status = $(".layui-layer-content select[name='status']").val();
				$(".layui-layer-content").mLoading("show");
				request.post('/backend/customermanage/infos/update-one-status', {
					id : id,
					status : status
				}, function(response, data) {
					if (data && data.id && parseInt(data.id) > 0) {
						layer.close(index);
						reload();
					}
				}, null, function() {
					$(".layui-layer-content").mLoading("hide");
				})
			}
		})
	})
}

function editorUsername(id) {
	id = parseInt(id);
	if (isNaN(id) || id < 1) {
		return;
	}
	// 首先弹窗
	layer.ready(function() {
		layer.open({
			title : '修改用户登录的用户名',
			skin : 'layui-layer-rim', // 加上边框
			area : [ '500px', '320px' ], // 宽高
			btn : [ '确定修改', '取消' ],
			content : $("#editor-username-form").html(),
			success : function(layero, index) {
				$(".layui-layer-content").mLoading("show");
				$(".current-status").removeAttr("style").html("");
				request.post('/backend/customermanage/infos/get-one-by-id', {
					id : id
				}, function(response, data) {
					if (data && data.customerUser && data.customerUser.id) {
						$(".layui-layer-content input[name='usernameold']").val(data.customerUser.username);
						$(".layui-layer-content input[name='username']").change(function() {
							$(".current-status").css("color", "orange").html("未检测");
						});
						$(".layui-layer-content .g-valid-username").click(function() {
							var username = getUsername();
							if (!username) {
								return;
							}
							$(".layui-layer-content").mLoading("show");
							request.post('/backend/customermanage/infos/get-one-by-username', {
								username : username
							}, function(response, data) {
								if (data && data.id) {
									$(".current-status").css("color", "red").html("已存在");
								} else {
									$(".current-status").css("color", "green").html("可用");
								}
							}, null, function() {
								$(".layui-layer-content").mLoading("hide");
							});
						});
					}
				}, null, function() {
					$(".layui-layer-content").mLoading("hide");
				})
			},
			btn1 : function(index) {
				var username = getUsername();
				if (!username) {
					return;
				}
				if ($(".layui-layer-content .mloading").hasClass("active")) {
					return;
				}
				var statushtml = $(".current-status").html();
				if (statushtml === '可用') {
					$(".layui-layer-content").mLoading("show");
					request.post('/backend/customermanage/infos/update-one-username', {
						id : id,
						username : username
					}, function(response, data) {
						if (data && data.id && parseInt(data.id) > 0) {
							layer.close(index);
							reload();
						}
					}, null, function() {
						$(".layui-layer-content").mLoading("hide");
					})
				}
			}
		})
	})
}

function getUsername() {
	var username = $.trim($(".layui-layer-content input[name='username']").val());
	if (username === '') {
		$(".current-status").css("color", "red").html("修改后的用户名不能为空！");
		return false;
	}
	if (username.length < 4) {
		$(".current-status").css("color", "red").html('登录用户名不能小于4个字符！ ');
		return;
	}

	if (username.length > 64) {
		$(".current-status").css("color", "red").html('登录用户名不能超过64个字符！ ');
		return;
	}
	if (!/^\w+$/.test(username)) {
		$(".current-status").css("color", "red").html('用户名只能是数字、字母，不能含有空格以及其他特殊字符！ ');
		return;
	}
	return username;
}
